The present specification describes features which build on the applicant's earlier Microgen Aptitude products. For example features of Microgen Aptitude V3.00 are described in the applicant's earlier European Patent Application No. 10196007.8 (Publication No. 2,354,925) and a number of other applications. Microgen Aptitude V3.00 is a development of Microgen's earlier Aptitude product which is described in U.S. patent application Ser. No. 11/341,156 (Publication No. US-2006-0247805-A1) and corresponding European Patent Application No 06100913.0 (Publication No. 1,686,466). It should be understood that the invention and the embodiments described below may incorporate features of any earlier Microgen Aptitude product, and any of the features described in the applications mentioned above, and the entire contents of the applications identified above are incorporated by reference herein.
Aptitude is a program with a graphical interface which allows users to create complex applications without knowledge of traditional programming languages. Graphical elements, also referred to as icons, can be connected together using graphical links in order to create graphical models of processes and rules which are later converted into computer instructions.
Conventionally, computer programs are written in a programming language such as Cobol, Pascal, C++ or Java. The programs so produced consist of a set of files containing “source code” which is simply text written using the lexicon and obeying the syntax of the language. The source code is then compiled or translated into machine code and executed. The development environment for producing, managing and compiling these programs is called an “IDE” or Integrated Development Environment; “Integrated” because it normally comprises a set of tools such as compilers, linkers, debuggers, etc.
The programs in the source code files often “call” each other forming links or dependencies between them. It should be noted that the source code files and their links do not represent the logical “structure” of the software as a particular functional component such as a business rule may be coded in a large number of files with multiple dependencies so there is no clear correspondence between a source code file and particular piece of functionality.
More recently, programs designed for commercial applications have been divided into layers where the layers comprise different “models” of the final program. Typically the models are defined using source code. Essentially each layer is a collection of one or more models of the same type. Such models may for example be concerned with Business Rules, Data Flow, Screen Presentation, Database, etc. as shown in FIG. 1.
This architecture which is widely used by “Business Process Management Suites” (BPMS) has produced a radically different type of IDE which is able to cope with multiple models and to integrate them into an executable program; the development tools for each model usually generate source code—most frequently Java—which is then combined with the code from the other layers to produce an executable program.
Microgen Aptitude falls into this class of product but has taken a radically different approach whereby no source code is generated or required; each layer has an associated “modelling tool” which allows the Business User to model the Rules (say) graphically. The graphical models that are produced are diagrams comprising graphical elements (icons), and may for example represent processes and rules used in the Aptitude software. The graphical models that are produced for each layer are then combined and translated into intermediate code or “p-code”. Unlike source code, this is not human readable but is interpreted by an execution engine so automating the business model.
All IDE's have a “Viewer” where the user can see all the different components (traditionally source code files) of an application. There may be hundreds or thousands of source code files and the organization of these in a manner which allows the structure of the project to be visible, is a considerable challenge. Most Viewers provide a folder or tree structure organization of the project components and these work to some degree when the project consists of a homogeneous set of source code files; however, when a layered architecture is employed where each layer consists of a different set of models, these folder or tree structures fail to provide a means to organize the many models and layers effectively.